/*
	Copyright (c) 2010 <copyright holders>
	This source code is licensed under The MIT License,
	see the file LICENSE for details.
	*/

#ifndef FORWARDDECLS_HPP
#define FORWARDDECLS_HPP

/*  The point of this file is to try to keep forward declarations that have a chance to be popular
    in a single file, instead of spreading them out everywhere.
    */

namespace spelprog2 {
    class CameraMan;
    class FrameHandler;
    class Game;
    class Landscape;
    struct LandscapeSpatials;

    namespace file {
        class MessageInputFile;
        class MessageOutputFile;
    };

    namespace gui {
        class GameGUI;
        class MenuGUI;
        class WorldGUI;
    };

    namespace net {
        class Net;
        struct NetMessageInfo;
    };

    namespace presentation {
        class EntityInterpolator;
        class Presentation;
        class SquadSelections;
        class UnitInterpolator;
        class WorldInputHandler;
        class WorldScene;
    };

    namespace sim {
        class Faction;
        struct ProjectileInvariant;
        struct Squad;
        struct Unit;
        struct UnitInvariant;
        struct World;
        class WorldManager;
        struct WorldSignals;

        namespace net_logic {
            class HandleFrameUpdate;
        };
    };

	namespace lua {
		class Engine;
	}
};

namespace irrklang {
	class ISoundEngine;
};

namespace Ogre {
    class Camera;
    class SceneManager;
    struct RaySceneQueryResultEntry;
    class TerrainSceneManager;
    class Viewport;
};

namespace QuickGUI {
    class Widget;
};

#endif //FORWARDDECLS_HPP